package linuxbox.common;

import linuxbox.exception.*;

public interface IBoxConfig
{
  //For Module configuration
  public void removeModuleConfigEntry(String module, String category, String name) 
              throws LinuxboxException;

//For single entry
	public String getModuleConfigValue(String module, String category, String name)
                throws LinuxboxException;
	public void setModuleConfigValue(String module, String category, String name, String value)
              throws LinuxboxException;
	
//For Multiple entries, you have to get all the values, modify them and set them back
	public void setModuleConfigValues(String module, String category, String name, String[] values)
              throws LinuxboxException;
	public String[] getModuleConfigValues(String module, String category, String name)
                  throws LinuxboxException;


  //For User configuration
  public void removeUserConfigEntry(String UserID, String module, String category, String name)
              throws LinuxboxException;

//For single entry
	public String getUserConfigValue(String UserID, String module, String category, String name)
                throws LinuxboxException;
	public void setUserConfigValue(String UserID, String module, String category, String name, String value)
              throws LinuxboxException;

//For Multiple entries, you have to get all the values, modify them and set them back
	public void setUserConfigValues(String UserID, String module, String category, String name, String[] values)
              throws LinuxboxException;
	public String[] getUserConfigValues(String UserID, String module, String category, String name)
                  throws LinuxboxException;

//For getting default value
  public String getDefaultUserConfigValueString(String UserID, String module, String category, String name, String defaultValue);
  public int getDefaultUserConfigValueInt(String UserID, String module, String category, String name, int defaultValue);

//For Admin
  public void removeModuleConfig(String module)
              throws LinuxboxException;
  public void removeUserConfig(String UserID)
              throws LinuxboxException;
}

